
// Generated from Jass.g4 by ANTLR 4.13.2


#include "JassLexer.h"


using namespace antlr4;

using namespace antlrcppjassparser;


using namespace antlr4;

namespace {

struct JassLexerStaticData final {
  JassLexerStaticData(std::vector<std::string> ruleNames,
                          std::vector<std::string> channelNames,
                          std::vector<std::string> modeNames,
                          std::vector<std::string> literalNames,
                          std::vector<std::string> symbolicNames)
      : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)),
        modeNames(std::move(modeNames)), literalNames(std::move(literalNames)),
        symbolicNames(std::move(symbolicNames)),
        vocabulary(this->literalNames, this->symbolicNames) {}

  JassLexerStaticData(const JassLexerStaticData&) = delete;
  JassLexerStaticData(JassLexerStaticData&&) = delete;
  JassLexerStaticData& operator=(const JassLexerStaticData&) = delete;
  JassLexerStaticData& operator=(JassLexerStaticData&&) = delete;

  std::vector<antlr4::dfa::DFA> decisionToDFA;
  antlr4::atn::PredictionContextCache sharedContextCache;
  const std::vector<std::string> ruleNames;
  const std::vector<std::string> channelNames;
  const std::vector<std::string> modeNames;
  const std::vector<std::string> literalNames;
  const std::vector<std::string> symbolicNames;
  const antlr4::dfa::Vocabulary vocabulary;
  antlr4::atn::SerializedATNView serializedATN;
  std::unique_ptr<antlr4::atn::ATN> atn;
};

::antlr4::internal::OnceFlag jasslexerLexerOnceFlag;
#if ANTLR4_USE_THREAD_LOCAL_CACHE
static thread_local
#endif
std::unique_ptr<JassLexerStaticData> jasslexerLexerStaticData = nullptr;

void jasslexerLexerInitialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
  if (jasslexerLexerStaticData != nullptr) {
    return;
  }
#else
  assert(jasslexerLexerStaticData == nullptr);
#endif
  auto staticData = std::make_unique<JassLexerStaticData>(
    std::vector<std::string>{
      "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", 
      "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "EQUALS", "GLOBALS", 
      "ENDGLOBALS", "NATIVE", "FUNCTION", "TAKES", "RETURNS", "ENDFUNCTION", 
      "NOTHING", "CALL", "SET", "RETURN", "ARRAY", "TYPE", "EXTENDS", "IF", 
      "THEN", "ELSE", "ENDIF", "ELSEIF", "CONSTANT", "LOCAL", "LOOP", "ENDLOOP", 
      "EXITWHEN", "DEBUG", "ESCAPED_QUOTE", "ESCAPED_SLASH", "STRING_LITERAL", 
      "INTEGER", "HEX_CONSTANT", "DOLLAR_HEX_CONSTANT", "RAWCODE", "REAL", 
      "NULL", "TRUE", "FALSE", "NOT", "OR", "AND", "ID", "WS", "NEWLINE"
    },
    std::vector<std::string>{
      "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
    },
    std::vector<std::string>{
      "DEFAULT_MODE"
    },
    std::vector<std::string>{
      "", "'*'", "'/'", "'+'", "'-'", "'<'", "'>'", "'<='", "'>='", "'=='", 
      "'!='", "'['", "']'", "'('", "')'", "','", "'='", "'globals'", "'endglobals'", 
      "'native'", "'function'", "'takes'", "'returns'", "'endfunction'", 
      "'nothing'", "'call'", "'set'", "'return'", "'array'", "'type'", "'extends'", 
      "'if'", "'then'", "'else'", "'endif'", "'elseif'", "'constant'", "'local'", 
      "'loop'", "'endloop'", "'exitwhen'", "'debug'", "", "", "", "", "", 
      "", "'null'", "'true'", "'false'", "'not'", "'or'", "'and'"
    },
    std::vector<std::string>{
      "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "EQUALS", 
      "GLOBALS", "ENDGLOBALS", "NATIVE", "FUNCTION", "TAKES", "RETURNS", 
      "ENDFUNCTION", "NOTHING", "CALL", "SET", "RETURN", "ARRAY", "TYPE", 
      "EXTENDS", "IF", "THEN", "ELSE", "ENDIF", "ELSEIF", "CONSTANT", "LOCAL", 
      "LOOP", "ENDLOOP", "EXITWHEN", "DEBUG", "STRING_LITERAL", "INTEGER", 
      "HEX_CONSTANT", "DOLLAR_HEX_CONSTANT", "RAWCODE", "REAL", "NULL", 
      "TRUE", "FALSE", "NOT", "OR", "AND", "ID", "WS", "NEWLINE"
    }
  );
  static const int32_t serializedATNSegment[] = {
  	4,0,56,481,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
  	6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,
  	7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,
  	7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,
  	7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,
  	7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,
  	7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,
  	7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,
  	7,56,2,57,7,57,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,
  	6,1,6,1,7,1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,
  	12,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,
  	16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,
  	18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,
  	20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,
  	22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,
  	23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,
  	25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,
  	28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,
  	30,1,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,
  	33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,
  	35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,
  	37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,
  	39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,
  	41,1,42,1,42,1,42,1,43,1,43,1,43,1,43,5,43,337,8,43,10,43,12,43,340,9,
  	43,1,43,1,43,1,44,1,44,1,44,5,44,347,8,44,10,44,12,44,350,9,44,3,44,352,
  	8,44,1,45,1,45,1,45,1,45,5,45,358,8,45,10,45,12,45,361,9,45,1,46,1,46,
  	5,46,365,8,46,10,46,12,46,368,9,46,1,47,1,47,5,47,372,8,47,10,47,12,47,
  	375,9,47,1,47,1,47,1,48,1,48,1,48,5,48,382,8,48,10,48,12,48,385,9,48,
  	3,48,387,8,48,1,48,1,48,5,48,391,8,48,10,48,12,48,394,9,48,1,48,1,48,
  	5,48,398,8,48,10,48,12,48,401,9,48,3,48,403,8,48,1,49,1,49,1,49,1,49,
  	1,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,
  	1,52,1,52,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,55,1,55,5,55,434,8,55,
  	10,55,12,55,437,9,55,1,56,4,56,440,8,56,11,56,12,56,441,1,56,1,56,1,57,
  	1,57,1,57,1,57,5,57,450,8,57,10,57,12,57,453,9,57,1,57,1,57,1,57,1,57,
  	1,57,1,57,5,57,461,8,57,10,57,12,57,464,9,57,1,57,1,57,1,57,1,57,1,57,
  	5,57,471,8,57,10,57,12,57,474,9,57,1,57,1,57,1,57,1,57,3,57,480,8,57,
  	5,338,373,451,462,472,0,58,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,
  	10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,
  	43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,
  	33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,0,85,0,87,42,89,
  	43,91,44,93,45,95,46,97,47,99,48,101,49,103,50,105,51,107,52,109,53,111,
  	54,113,55,115,56,1,0,9,1,0,48,48,1,0,49,57,1,0,48,57,3,0,48,57,65,70,
  	97,102,2,0,48,57,65,70,3,0,65,90,95,95,97,122,4,0,48,57,65,90,95,95,97,
  	122,2,0,9,9,32,32,2,0,10,10,13,13,500,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,
  	0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,
  	17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,
  	0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,
  	0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,
  	49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,
  	0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,
  	0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,
  	81,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,
  	0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,
  	0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,
  	0,0,1,117,1,0,0,0,3,119,1,0,0,0,5,121,1,0,0,0,7,123,1,0,0,0,9,125,1,0,
  	0,0,11,127,1,0,0,0,13,129,1,0,0,0,15,132,1,0,0,0,17,135,1,0,0,0,19,138,
  	1,0,0,0,21,141,1,0,0,0,23,143,1,0,0,0,25,145,1,0,0,0,27,147,1,0,0,0,29,
  	149,1,0,0,0,31,151,1,0,0,0,33,153,1,0,0,0,35,161,1,0,0,0,37,172,1,0,0,
  	0,39,179,1,0,0,0,41,188,1,0,0,0,43,194,1,0,0,0,45,202,1,0,0,0,47,214,
  	1,0,0,0,49,222,1,0,0,0,51,227,1,0,0,0,53,231,1,0,0,0,55,238,1,0,0,0,57,
  	244,1,0,0,0,59,249,1,0,0,0,61,257,1,0,0,0,63,260,1,0,0,0,65,265,1,0,0,
  	0,67,270,1,0,0,0,69,276,1,0,0,0,71,283,1,0,0,0,73,292,1,0,0,0,75,298,
  	1,0,0,0,77,303,1,0,0,0,79,311,1,0,0,0,81,320,1,0,0,0,83,326,1,0,0,0,85,
  	329,1,0,0,0,87,332,1,0,0,0,89,351,1,0,0,0,91,353,1,0,0,0,93,362,1,0,0,
  	0,95,369,1,0,0,0,97,402,1,0,0,0,99,404,1,0,0,0,101,409,1,0,0,0,103,414,
  	1,0,0,0,105,420,1,0,0,0,107,424,1,0,0,0,109,427,1,0,0,0,111,431,1,0,0,
  	0,113,439,1,0,0,0,115,479,1,0,0,0,117,118,5,42,0,0,118,2,1,0,0,0,119,
  	120,5,47,0,0,120,4,1,0,0,0,121,122,5,43,0,0,122,6,1,0,0,0,123,124,5,45,
  	0,0,124,8,1,0,0,0,125,126,5,60,0,0,126,10,1,0,0,0,127,128,5,62,0,0,128,
  	12,1,0,0,0,129,130,5,60,0,0,130,131,5,61,0,0,131,14,1,0,0,0,132,133,5,
  	62,0,0,133,134,5,61,0,0,134,16,1,0,0,0,135,136,5,61,0,0,136,137,5,61,
  	0,0,137,18,1,0,0,0,138,139,5,33,0,0,139,140,5,61,0,0,140,20,1,0,0,0,141,
  	142,5,91,0,0,142,22,1,0,0,0,143,144,5,93,0,0,144,24,1,0,0,0,145,146,5,
  	40,0,0,146,26,1,0,0,0,147,148,5,41,0,0,148,28,1,0,0,0,149,150,5,44,0,
  	0,150,30,1,0,0,0,151,152,5,61,0,0,152,32,1,0,0,0,153,154,5,103,0,0,154,
  	155,5,108,0,0,155,156,5,111,0,0,156,157,5,98,0,0,157,158,5,97,0,0,158,
  	159,5,108,0,0,159,160,5,115,0,0,160,34,1,0,0,0,161,162,5,101,0,0,162,
  	163,5,110,0,0,163,164,5,100,0,0,164,165,5,103,0,0,165,166,5,108,0,0,166,
  	167,5,111,0,0,167,168,5,98,0,0,168,169,5,97,0,0,169,170,5,108,0,0,170,
  	171,5,115,0,0,171,36,1,0,0,0,172,173,5,110,0,0,173,174,5,97,0,0,174,175,
  	5,116,0,0,175,176,5,105,0,0,176,177,5,118,0,0,177,178,5,101,0,0,178,38,
  	1,0,0,0,179,180,5,102,0,0,180,181,5,117,0,0,181,182,5,110,0,0,182,183,
  	5,99,0,0,183,184,5,116,0,0,184,185,5,105,0,0,185,186,5,111,0,0,186,187,
  	5,110,0,0,187,40,1,0,0,0,188,189,5,116,0,0,189,190,5,97,0,0,190,191,5,
  	107,0,0,191,192,5,101,0,0,192,193,5,115,0,0,193,42,1,0,0,0,194,195,5,
  	114,0,0,195,196,5,101,0,0,196,197,5,116,0,0,197,198,5,117,0,0,198,199,
  	5,114,0,0,199,200,5,110,0,0,200,201,5,115,0,0,201,44,1,0,0,0,202,203,
  	5,101,0,0,203,204,5,110,0,0,204,205,5,100,0,0,205,206,5,102,0,0,206,207,
  	5,117,0,0,207,208,5,110,0,0,208,209,5,99,0,0,209,210,5,116,0,0,210,211,
  	5,105,0,0,211,212,5,111,0,0,212,213,5,110,0,0,213,46,1,0,0,0,214,215,
  	5,110,0,0,215,216,5,111,0,0,216,217,5,116,0,0,217,218,5,104,0,0,218,219,
  	5,105,0,0,219,220,5,110,0,0,220,221,5,103,0,0,221,48,1,0,0,0,222,223,
  	5,99,0,0,223,224,5,97,0,0,224,225,5,108,0,0,225,226,5,108,0,0,226,50,
  	1,0,0,0,227,228,5,115,0,0,228,229,5,101,0,0,229,230,5,116,0,0,230,52,
  	1,0,0,0,231,232,5,114,0,0,232,233,5,101,0,0,233,234,5,116,0,0,234,235,
  	5,117,0,0,235,236,5,114,0,0,236,237,5,110,0,0,237,54,1,0,0,0,238,239,
  	5,97,0,0,239,240,5,114,0,0,240,241,5,114,0,0,241,242,5,97,0,0,242,243,
  	5,121,0,0,243,56,1,0,0,0,244,245,5,116,0,0,245,246,5,121,0,0,246,247,
  	5,112,0,0,247,248,5,101,0,0,248,58,1,0,0,0,249,250,5,101,0,0,250,251,
  	5,120,0,0,251,252,5,116,0,0,252,253,5,101,0,0,253,254,5,110,0,0,254,255,
  	5,100,0,0,255,256,5,115,0,0,256,60,1,0,0,0,257,258,5,105,0,0,258,259,
  	5,102,0,0,259,62,1,0,0,0,260,261,5,116,0,0,261,262,5,104,0,0,262,263,
  	5,101,0,0,263,264,5,110,0,0,264,64,1,0,0,0,265,266,5,101,0,0,266,267,
  	5,108,0,0,267,268,5,115,0,0,268,269,5,101,0,0,269,66,1,0,0,0,270,271,
  	5,101,0,0,271,272,5,110,0,0,272,273,5,100,0,0,273,274,5,105,0,0,274,275,
  	5,102,0,0,275,68,1,0,0,0,276,277,5,101,0,0,277,278,5,108,0,0,278,279,
  	5,115,0,0,279,280,5,101,0,0,280,281,5,105,0,0,281,282,5,102,0,0,282,70,
  	1,0,0,0,283,284,5,99,0,0,284,285,5,111,0,0,285,286,5,110,0,0,286,287,
  	5,115,0,0,287,288,5,116,0,0,288,289,5,97,0,0,289,290,5,110,0,0,290,291,
  	5,116,0,0,291,72,1,0,0,0,292,293,5,108,0,0,293,294,5,111,0,0,294,295,
  	5,99,0,0,295,296,5,97,0,0,296,297,5,108,0,0,297,74,1,0,0,0,298,299,5,
  	108,0,0,299,300,5,111,0,0,300,301,5,111,0,0,301,302,5,112,0,0,302,76,
  	1,0,0,0,303,304,5,101,0,0,304,305,5,110,0,0,305,306,5,100,0,0,306,307,
  	5,108,0,0,307,308,5,111,0,0,308,309,5,111,0,0,309,310,5,112,0,0,310,78,
  	1,0,0,0,311,312,5,101,0,0,312,313,5,120,0,0,313,314,5,105,0,0,314,315,
  	5,116,0,0,315,316,5,119,0,0,316,317,5,104,0,0,317,318,5,101,0,0,318,319,
  	5,110,0,0,319,80,1,0,0,0,320,321,5,100,0,0,321,322,5,101,0,0,322,323,
  	5,98,0,0,323,324,5,117,0,0,324,325,5,103,0,0,325,82,1,0,0,0,326,327,5,
  	92,0,0,327,328,5,34,0,0,328,84,1,0,0,0,329,330,5,92,0,0,330,331,5,92,
  	0,0,331,86,1,0,0,0,332,338,5,34,0,0,333,337,3,85,42,0,334,337,3,83,41,
  	0,335,337,9,0,0,0,336,333,1,0,0,0,336,334,1,0,0,0,336,335,1,0,0,0,337,
  	340,1,0,0,0,338,339,1,0,0,0,338,336,1,0,0,0,339,341,1,0,0,0,340,338,1,
  	0,0,0,341,342,5,34,0,0,342,88,1,0,0,0,343,352,7,0,0,0,344,348,7,1,0,0,
  	345,347,7,2,0,0,346,345,1,0,0,0,347,350,1,0,0,0,348,346,1,0,0,0,348,349,
  	1,0,0,0,349,352,1,0,0,0,350,348,1,0,0,0,351,343,1,0,0,0,351,344,1,0,0,
  	0,352,90,1,0,0,0,353,354,5,48,0,0,354,355,5,120,0,0,355,359,1,0,0,0,356,
  	358,7,3,0,0,357,356,1,0,0,0,358,361,1,0,0,0,359,357,1,0,0,0,359,360,1,
  	0,0,0,360,92,1,0,0,0,361,359,1,0,0,0,362,366,5,36,0,0,363,365,7,4,0,0,
  	364,363,1,0,0,0,365,368,1,0,0,0,366,364,1,0,0,0,366,367,1,0,0,0,367,94,
  	1,0,0,0,368,366,1,0,0,0,369,373,5,39,0,0,370,372,9,0,0,0,371,370,1,0,
  	0,0,372,375,1,0,0,0,373,374,1,0,0,0,373,371,1,0,0,0,374,376,1,0,0,0,375,
  	373,1,0,0,0,376,377,5,39,0,0,377,96,1,0,0,0,378,387,7,0,0,0,379,383,7,
  	1,0,0,380,382,7,2,0,0,381,380,1,0,0,0,382,385,1,0,0,0,383,381,1,0,0,0,
  	383,384,1,0,0,0,384,387,1,0,0,0,385,383,1,0,0,0,386,378,1,0,0,0,386,379,
  	1,0,0,0,387,388,1,0,0,0,388,392,5,46,0,0,389,391,7,2,0,0,390,389,1,0,
  	0,0,391,394,1,0,0,0,392,390,1,0,0,0,392,393,1,0,0,0,393,403,1,0,0,0,394,
  	392,1,0,0,0,395,399,5,46,0,0,396,398,7,2,0,0,397,396,1,0,0,0,398,401,
  	1,0,0,0,399,397,1,0,0,0,399,400,1,0,0,0,400,403,1,0,0,0,401,399,1,0,0,
  	0,402,386,1,0,0,0,402,395,1,0,0,0,403,98,1,0,0,0,404,405,5,110,0,0,405,
  	406,5,117,0,0,406,407,5,108,0,0,407,408,5,108,0,0,408,100,1,0,0,0,409,
  	410,5,116,0,0,410,411,5,114,0,0,411,412,5,117,0,0,412,413,5,101,0,0,413,
  	102,1,0,0,0,414,415,5,102,0,0,415,416,5,97,0,0,416,417,5,108,0,0,417,
  	418,5,115,0,0,418,419,5,101,0,0,419,104,1,0,0,0,420,421,5,110,0,0,421,
  	422,5,111,0,0,422,423,5,116,0,0,423,106,1,0,0,0,424,425,5,111,0,0,425,
  	426,5,114,0,0,426,108,1,0,0,0,427,428,5,97,0,0,428,429,5,110,0,0,429,
  	430,5,100,0,0,430,110,1,0,0,0,431,435,7,5,0,0,432,434,7,6,0,0,433,432,
  	1,0,0,0,434,437,1,0,0,0,435,433,1,0,0,0,435,436,1,0,0,0,436,112,1,0,0,
  	0,437,435,1,0,0,0,438,440,7,7,0,0,439,438,1,0,0,0,440,441,1,0,0,0,441,
  	439,1,0,0,0,441,442,1,0,0,0,442,443,1,0,0,0,443,444,6,56,0,0,444,114,
  	1,0,0,0,445,446,5,47,0,0,446,447,5,47,0,0,447,451,1,0,0,0,448,450,9,0,
  	0,0,449,448,1,0,0,0,450,453,1,0,0,0,451,452,1,0,0,0,451,449,1,0,0,0,452,
  	454,1,0,0,0,453,451,1,0,0,0,454,455,5,13,0,0,455,480,5,10,0,0,456,457,
  	5,47,0,0,457,458,5,47,0,0,458,462,1,0,0,0,459,461,9,0,0,0,460,459,1,0,
  	0,0,461,464,1,0,0,0,462,463,1,0,0,0,462,460,1,0,0,0,463,465,1,0,0,0,464,
  	462,1,0,0,0,465,480,5,10,0,0,466,467,5,47,0,0,467,468,5,47,0,0,468,472,
  	1,0,0,0,469,471,9,0,0,0,470,469,1,0,0,0,471,474,1,0,0,0,472,473,1,0,0,
  	0,472,470,1,0,0,0,473,475,1,0,0,0,474,472,1,0,0,0,475,480,5,13,0,0,476,
  	477,5,13,0,0,477,480,5,10,0,0,478,480,7,8,0,0,479,445,1,0,0,0,479,456,
  	1,0,0,0,479,466,1,0,0,0,479,476,1,0,0,0,479,478,1,0,0,0,480,116,1,0,0,
  	0,21,0,336,338,348,351,357,359,364,366,373,383,386,392,399,402,435,441,
  	451,462,472,479,1,6,0,0
  };
  staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0]));

  antlr4::atn::ATNDeserializer deserializer;
  staticData->atn = deserializer.deserialize(staticData->serializedATN);

  const size_t count = staticData->atn->getNumberOfDecisions();
  staticData->decisionToDFA.reserve(count);
  for (size_t i = 0; i < count; i++) { 
    staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i);
  }
  jasslexerLexerStaticData = std::move(staticData);
}

}

JassLexer::JassLexer(CharStream *input) : Lexer(input) {
  JassLexer::initialize();
  _interpreter = new atn::LexerATNSimulator(this, *jasslexerLexerStaticData->atn, jasslexerLexerStaticData->decisionToDFA, jasslexerLexerStaticData->sharedContextCache);
}

JassLexer::~JassLexer() {
  delete _interpreter;
}

std::string JassLexer::getGrammarFileName() const {
  return "Jass.g4";
}

const std::vector<std::string>& JassLexer::getRuleNames() const {
  return jasslexerLexerStaticData->ruleNames;
}

const std::vector<std::string>& JassLexer::getChannelNames() const {
  return jasslexerLexerStaticData->channelNames;
}

const std::vector<std::string>& JassLexer::getModeNames() const {
  return jasslexerLexerStaticData->modeNames;
}

const dfa::Vocabulary& JassLexer::getVocabulary() const {
  return jasslexerLexerStaticData->vocabulary;
}

antlr4::atn::SerializedATNView JassLexer::getSerializedATN() const {
  return jasslexerLexerStaticData->serializedATN;
}

const atn::ATN& JassLexer::getATN() const {
  return *jasslexerLexerStaticData->atn;
}




void JassLexer::initialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
  jasslexerLexerInitialize();
#else
  ::antlr4::internal::call_once(jasslexerLexerOnceFlag, jasslexerLexerInitialize);
#endif
}
